#ifndef THRESHOLDFINDER_HPP
#define THRESHOLDFINDER_HPP

//------------------------------------------------------------------------------
// Fichier d'entête utilisés
//------------------------------------------------------------------------------
#include "Region.hpp"
#include "Gradiant.hpp"

namespace ImageAnalysis
{
//----------------------------------------------------------------------
// Cette classe est une classe abstraite permettant de 
// généraliser les classes implémentant des méthodes
// (Otsu, IsoData, Basique) pour trouver les seuils d'une
// région d'une image.
//----------------------------------------------------------------------
class ThresholdFinder
{
public: 
		//----------------------------------------------------------------------
        // Structure
        //----------------------------------------------------------------------
		
        //----------------------------------------------------------------------
        // Constructeur
        //----------------------------------------------------------------------
        ThresholdFinder();

        //----------------------------------------------------------------------
        // Destructeur
        //----------------------------------------------------------------------
        virtual ~ThresholdFinder();

        //----------------------------------------------------------------------
        // Permet de calculer un seuil sur une région du gradiant
        //----------------------------------------------------------------------
        virtual unsigned char * GetOneThreshold(Region* regionToStudy, Gradiant* gradiantToStudy)=0;

        //----------------------------------------------------------------------
        // Permet de calculer deux seuils sur une région du gradiant
        //----------------------------------------------------------------------
	virtual unsigned char * GetTwoThresholds(Region* regionToStudy, Gradiant* gradiantToStudy)=0;

};

}

#endif //THRESHOLDFINDER_HPP

